// import { is } from '@electron-toolkit/utils'
// import { BrowserWindow, screen } from 'electron'
// import { User32, ffi } from 'win32-api'
// // @ts-ignore
// import * as D from 'win32-def/def'

// let isSetElectronForeground = false
// const offsetMaps = {
//   qn: 50,
//   pdd: 40,
//   dd: 40,
//   jd: 36
// }
// const appName = 'huihui'
// const mainWindowBaseParam = {
//   width: 720,
//   height: 720,
//   show: false,
//   title: appName,
//   frame: false,
//   resizable: is.dev ? true : false,
//   autoHideMenuBar: true
// }
// const user32Api = {
//   ...User32.load()
// }
// const lib = ffi.load('user32.dll')
// const user32 = {
//   ...user32Api,
//   OpenClipboard: lib.func('OpenClipboard', 'void', ['long'])
// }

// const FindWindowFast = async (
//   pid: number,
//   className: string,
//   titlePart: string
// ): Promise<number | null> => {
//   let hwnd = user32.FindWindowExW(0, 0, className, null) // 先通过类名查找
//   while (hwnd !== 0) {
//     const windowPid = Buffer.alloc(4)
//     user32.GetWindowThreadProcessId(hwnd, windowPid)

//     if (windowPid.readUInt32LE() === pid) {
//       const titleBuffer = Buffer.alloc(256 * 2) // 为Unicode字符分配空间
//       if (user32.GetWindowTextW(hwnd, titleBuffer, 256) > 0) {
//         const title = titleBuffer.toString('ucs2').replace(/\0+$/, '')
//         if (title.includes(titlePart)) {
//           return hwnd
//         }
//       }
//     }

//     hwnd = user32.FindWindowExW(0, hwnd, className, null) // 查找下一个同类窗口
//   }

//   return null
// }

// const FindWindowRectPosition = (hwnd: number) => {
//   if (hwnd === 0) {
//     return null
//   }
//   const rect = Buffer.alloc(4 * 4)
//   user32.GetWindowRect(hwnd, rect)
//   return {
//     left: rect.readInt32LE(0),
//     top: rect.readInt32LE(4),
//     right: rect.readInt32LE(8),
//     bottom: rect.readInt32LE(12),
//     width: rect.readInt32LE(8) - rect.readInt32LE(0),
//     height: rect.readInt32LE(12) - rect.readInt32LE(4),
//     isMinimized: user32.IsIconic(hwnd)
//   }
// }

// const IsWindowForeground = (hwnd: number) => {
//   return user32.GetForegroundWindow() === hwnd
// }

// export const testFunc = async (mainWin: BrowserWindow) => {
//   const pid = 46588
//   // 调用示例
//   setInterval(() => {
//     adjustWindowToTarget(mainWin, pid, D.WNDCLASS_NAME, '微信')
//   }, 100)
// }

// // 计算自身窗口坐标
// const calculateWindowPosition = (
//   mainWin: BrowserWindow,
//   targetRect: {
//     left: number
//     top: number
//     right: number
//     bottom: number
//     width: number
//     height: number
//   }
// ) => {
//   // if (globalThis.platFormGlobal === 'pdd') {
//   //   !mainWin.isAlwaysOnTop() && globalThis.isOnTop && mainWin.setAlwaysOnTop(true) // 设置窗口置顶
//   //   mainWin.isAlwaysOnTop() && !globalThis.isOnTop && mainWin.setAlwaysOnTop(false) // 取消窗口置顶
//   // }
//   const { left, top, right, bottom, width, height } = targetRect
//   if (
//     right + mainWindowBaseParam.width >= screen.getPrimaryDisplay().bounds.width &&
//     !globalThis.isCollapsed
//   ) {
//     const offset = offsetMaps[globalThis.platFormGlobal] || 0
//     globalThis.sideWindow = true
//     return {
//       x: right - mainWindowBaseParam.width - 5,
//       y: top + offset,
//       width: width,
//       height: height - offset
//     }
//   } else {
//     globalThis.sideWindow = false
//     return {
//       x: right,
//       y: top,
//       width: width,
//       height: height
//     }
//   }
// }

// export const adjustWindowToTarget = async (
//   mainWin: BrowserWindow,
//   targetPid: number,
//   targetClassName: string,
//   targetTitlePart: string
// ) => {
//   // 查找目标窗口
//   const hwnd = (await FindWindowFast(targetPid, targetClassName, targetTitlePart)) ?? 0
//   if (hwnd === 0) {
//     mainWin.minimize()
//     console.error('未找到目标窗口')
//     return
//   }

//   // 获取目标窗口位置信息
//   const targetRect = FindWindowRectPosition(hwnd)
//   if (!targetRect) {
//     console.error('无法获取目标窗口位置')
//     return
//   }

//   // 设置Electron窗口位置和大小，在目标窗口右边且高度保持一致
//   const { left, top, right, bottom, width, height, isMinimized } = targetRect
//   if (isMinimized) {
//     mainWin.minimize()
//     return
//   } else {
//     mainWin.show()
//   }
//   const { x, y, width: w, height: h } = calculateWindowPosition(mainWin, targetRect)
//   mainWin.setBounds({
//     x,
//     y,
//     width: mainWindowBaseParam.width,
//     height: h
//   })

//   // 获取Electron窗口句柄
//   // const hWndElectronBuffer = mainWin.getNativeWindowHandle()
//   // const hWndElectron = hWndElectronBuffer.readUInt32LE(0)

//   // 如果目标窗口在前台，将Electron窗口也带到前台
//   if (IsWindowForeground(hwnd) && !isSetElectronForeground) {
//     // user32.SetForegroundWindow(hWndElectron)
//     mainWin.setAlwaysOnTop(true)
//     isSetElectronForeground = true
//   } else {
//     mainWin.setAlwaysOnTop(false)
//     isSetElectronForeground = false
//   }
// }
